package com.example.providerclient;

import android.app.ListActivity;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;

import com.example.persistencetest.filmes.Filme;
import com.example.persistencetest.filmes.Filme.Filmes;

public class FilmePickActivity extends ListActivity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);

		Uri uri = getIntent().getData();
		Log.i("FilmePickActivity", "Uri=" + uri.toString());

		if (uri != null && Filmes.CONTENT_TYPE.equals(getContentResolver().getType(uri))) {
		
			// Recupera o cursor dos contatos
			Cursor c = getContentResolver().query(uri, null, null, null, null);
			startManagingCursor(c);
			
			// Listar o nome e telefone do contato
			String[] columns = new String[] { Filmes.ANO, Filmes.TITLE };

			int[] to = new int[] { android.R.id.text1, android.R.id.text2 };

			// layout nativo para simplificar
			int layoutNativo = android.R.layout.simple_list_item_2;

			// Informa o adapter para ligar os valores ao XML da View
			SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, layoutNativo, c, columns, to);
			setListAdapter(adapter);
		}
		else {
			setResult(RESULT_CANCELED);
			finish();
		}
	}

	@Override
	protected void onListItemClick(ListView l, View v, int position, long id) {
		super.onListItemClick(l, v, position, id);

		Log.i("FilmePickActivity", "Selecionado=" + position);

		SimpleCursorAdapter adapter = (SimpleCursorAdapter) l.getAdapter();

		// Descobre qual filme foi selecionado
		Filme filme = Filme.fromCursor(adapter.getCursor());
		Uri uri = Filme.Filmes.getUriId(filme.id);
		Log.i("FilmePickActivity", "Uri=" + uri.toString());

		// Passa como retorno para activity que chamou
		Intent data = new Intent();
		data.setData(uri);		
		setResult(RESULT_OK, data);
		finish();
	}
}
